<?php

class TicketController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        return $this->_redirect('/ticket/uebersicht');
    }

    public function anlegenAction()
    {
        	$pareNamespace = new Zend_Session_Namespace('PaRe');
		if(isset($pareNamespace->nr)){
			if($pareNamespace->status=='Admin'){
				$request = $this->getRequest();
				$form    = new Application_Form_TicketAnlegenForm();
				if ($this->getRequest()->isPost()) {
					if ($form->isValid($request->getPost())) {
						$model = new Application_Model_Ticket($form->getValues());
						$von = strtotime($model->getVerfuegbar_ab());
						$bis = strtotime($model->getVerfuegbar_bis());
						$differenz = $bis - $von;
						$differenz = $differenz / 86400;
						$von2 = strtotime($model->getGueltig_ab());
						$bis2 = strtotime($model->getGueltig_bis());
						$differenz2 = $bis2 - $von2;
						$differenz2 = $differenz2 / 86400;
						if($differenz >= 0 && $differenz2 >= 0)
						{
							if($model->getTicketart() == 1)
							{
								$model->setDauer($differenz2);
								$model->setTage(NULL);
							}
						$mapper  = new Application_Model_TicketMapper();
						$mapper->anlegen($model);
						return $this->_redirect('/ticket/meldung?meldung=angelegt');
						} else {
							return $this->_redirect('/ticket/meldung?meldung=datumswahl');
						}
					}
				}
			}else{
				$form = new Application_Form_TicketAnlegenForm();
				return $this->_redirect('/benutzer/meldung?meldung=falscherStatus');
			}
		}else{
			//fehlermeldung wird einfach nicht ausgegeben
			//falls man nicht berechtigt ist, kommt man zur fehlerseite
			//leere Form mit der man nichts anfangen kann, aber die benötigt wird, damit es keine fehlermeldung gibz
			$form = new Application_Form_TicketAnlegenForm();
			return $this->_redirect('/benutzer/meldung?meldung=nichtAngemeldet');
		}
			
		$this->view->form = $form;
    }

    public function uebersichtAction()
    {
    	$pareNamespace = new Zend_Session_Namespace('PaRe');
		if(isset($pareNamespace->nr)){
			$request = $this->getRequest();
			//hier benutzerid aus session lesen
			$status=$pareNamespace->status;
			$nr = $pareNamespace->nr;
			$mapper = new Application_Model_TicketMapper();
			$data = $mapper->fetchAll();
			$this->view->data = $data;
		}else{
			return $this->_redirect('/benutzer/meldung?meldung=nichtAngemeldet');

		}
		
    }

    public function loeschenAction()
    {
        // action body
        $pareNamespace = new Zend_Session_Namespace('PaRe');
        $mapper = new Application_Model_TicketMapper();
    	
        if ($pareNamespace->status == 'Admin'){
        	 if (isset($_GET['loeschen']) && ($mapper->ticketExists($_GET['loeschen']))){
        	 	$mapper->loeschen($_GET['loeschen']);
        	 	return $this->_redirect('/ticket/meldung?meldung=geloescht');
        	 }
        } else {
        	
        	//leitet sonst zur Fehler Action weiter
     		return $this->_redirect('/benutzer/meldung?meldung=falscherStatus');
        }
    }

    public function meldungAction()
    {
        // action body
    }

    public function detailsAction()
    {
    	// action body
        $pareNamespace = new Zend_Session_Namespace('PaRe');
        $mapper = new Application_Model_TicketMapper();
        $detail = new Application_Model_Ticket();
    	
        if ($pareNamespace->status == 'Admin'){
        	 if (isset($_GET['details'])){
        	 	$detail = $mapper->details($_GET['details']);
        }} else {
        	
        	//leitet sonst zur Fehler Action weiter
     		return $this->_redirect('/benutzer/meldung?meldung=falscherStatus');
        }
        $this->view->detail = $detail;
    }
}